import re
def validate_email(email):#验证电子邮件弟子有没有效
    pattern=r'[a-zA-Z0-9._%+-]+@[a-zA-Z0_9.-]+\.[a-zA-Z]{2,}'
    return re.match(pattern,email)is not None
def classify_email(email):#分类电子邮件类型
    domain=email.split('@')[1]
    if '.edu' in domain or '.ac.' in domain:
        return "教育机构"
    elif '.com' in domain or '.org' in domain or '.net' in domain:
        return "公司"
    else:
        return "个人"
def extract_email_parts(email):#提取组成部分
    name,domain=email.split('@')
    tld=domain.split('.')[-1]
    return {'name':name,'domain':domain,'tld':tld}
def obfuscate_email(email):#脱敏处理
    name,domain=email.split('@')
    if len(name)>2:
        jiaminame=name[0]+'***'+name[-1]
    elif len(name)==2:
        jiaminame=name[0]+name[-1]
    else:
        jiaminame=name[0]
    list1=domain.split('.')
    if len(list1)==3:
        jiamidomain=str(list1[1])
        domain=str(list1[0])+"."+str(jiamidomain[0])+"***"+str(jiamidomain[-1])+"."+str(list1[2])
    if len(list1)==2:
        jiamidomain=str(list1[0])
        domain=jiamidomain[0]+"***"+jiamidomain[-1]+"."+str(list1[1])
    return jiaminame+"@"+domain

pan=True
while pan:
    email=input("请输入一个邮箱地址：")
    if validate_email(email):
        print("这是一个有效的邮箱地址")
        print("地址归类为：",classify_email(email))
        tiqu=extract_email_parts(email)
        print("提取结果为：",tiqu)
        print("脱敏结果为：",obfuscate_email(email))
    else:
        print("这根本不是一个有效的邮箱地址！")
    pan=input("还要继续判断吗？Y继续，N退出")
    if pan=="N" or pan=="n":
        pan=False








